home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir40
/
pc37042.zip
/
DEMO
/
DEMOSVC.ALC
< prev
next >
Wrap
Text File
|
1988-01-07
|
7KB
|
272 lines
TITLE 'DEMOSVC - TEST E370 SVCS'
*
* CONVERTED TO 8086 BY DON HIGGINS 03/30/85
*
* 04/06/85 CHANGE LINKED Z80SUB TO LOADED Z86SUB
* 04/07/85 ADD TEST FOR TIMER SVC AND LIBRARY SUBROUTINES
* 04/08/85 ADD TEST FOR ALLOC/DEALLOC SECONDARY MAIN MEMORY
* 04/14/85 ADD TEST FOR IN/OUT SVCS BY GETTING CURSOR ADDRESS
* 04/12/87 CONVERT FOR R2.0
* 1. DROP ALLOC/DEALLOC TESTS SINCE ALL OF DYNAMIC
* MEMORY IS ALLOCATED TO VIRTUAL FREE SPACE.
* 2. CHANGE Z86SUB.EXE TO Z86SUB.COM FORMAT WITH
* FAR RETURN AND USE NEW SVC 17 AND 15 LOGIC WHICH
* LOADS 8086 CODE FILE IN FREE MEMORY JUST LIKE 370
* LOAD DOES.
* 3. FIX SPIE ROUTINE TO RETURN PSW IN R0-R1 INSTEAD OF
* ADDDRESS OF PSW IN R1.
* 05/16/87 TEST SVC 8 FOR GANNON
* 11/11/87 EXPAND FREE MEMORY DISPLAY
* 12/26/87 ADD TEST OF ENHANCED SPIE WITH R2=A(PIE) PLUS
* CORRECT HANDLING OF PGM CHK ON EX'D INSTR.
* 01/07/88 USE COPY EQUS
*
* CONSOLE IO TEST REQUIRES ENTERING ANY CHARACTERS AND RETURN
* MEMORY TEST DISPLAYS AVAILABLE MEMORY FOR GMAIN'S
*
DEMOSVC CSECT
LR R12,R15
USING DEMOSVC,R12
LA R2,=C'TESTSVC START$'
SVC WTO
L R15,=V(PET)
BALR R14,R15
L R1,=A(1000000)
SVC GMAIN
CLM R0,1,=X'01'
BNE GMAINERR A=1 MEMORY NOT AVAIL
LR R5,R1 SVE R1 FOR CHECK AFTER 2G+2F
CVD R1,PWORK
ED DMEM,PWORK+4
LA R2,DMEMMSG
SVC WTO
LA R1,2000
SVC GMAIN
CLM R0,1,=X'00'
BNZ GMAINERR
LR R4,R2 R4 = FIRST AREA
LA R1,2000
SVC GMAIN
CLM R0,1,=X'00'
BNZ GMAINERR
LR R6,R2 R6 = SECOND AREA
LR R0,R4
AH R0,=H'2000'
CLR R0,R6
BNE GMAINERR
LA R1,2000
LR R2,R4
SVC FMAIN
CLM R0,1,=X'00'
BNE FMAINERR
LA R1,2000
LR R2,R6
SVC FMAIN
CLM R0,1,=X'00'
BNE FMAINERR
L R1,=A(1000000)
SVC GMAIN
CLR R1,R5
BNE FMAINERR VERIFY MEMORY BACK TO ORIG.
LA R1,USERSPI1
SVC SPIE
LM R14,R2,=A(14,15,0,1,2)
INVOP1 DC X'0123' INVALID OP 0C1
LA R1,USERSPI2
SVC SPIE
LM R14,R2,=A(14,15,0,1,2)
INVOP2 CP =P'1',=X'00' INVALID DATA 0C7
LA R1,USERSPI3
SVC SPIE
LM R14,R2,=A(X'14ABCDEF',15,X'00ABCDEF',1,2)
INVOP3 EX 0,INVOPEX INVALID DATA 0C4
SR R1,R1
SVC SPIE
L R15,=V(USER370A)
BALR R14,R15
L R15,=V(USER370B)
BALR R14,R15
LA R1,=C'Z86SUB.COM'
SVC LOADSVC LOAD Z86SUB.COM IN FREE MEMORY
ST R0,LOADADDR
CLM R15,1,=X'00'
BNE LOADERR
L R15,LOADADDR
SVC CALLZ86 EXEC Z86SUB IN FREE MEMORY
LA R2,=C'CONSOLE ECHO TEST UNTIL <CR>$'
SVC WTO
ECHO EQU *
SVC READCON
CLM R0,1,=AL1(CR)
BE ECHODONE
LR R2,R0
SVC WRITECON
B ECHO
ECHODONE EQU *
LA R2,=C'CONSOLE ECHO DONE$'
SVC WTO
SR R1,R1
SVC SPIE REMOVE SPIE
LA R2,=C'START CURSOR ADDRESS ROUTINE$'
SVC WTO
LA R0,X'0E'
LA R1,X'3D4'
SVC PORTOUT SET CURSOR HIGH BYTE INDEX POINTER
LA R1,X'3D5'
SVC PORTIN READ HIGH BYTE
LR R3,R0 SAVE IN R3
LA R0,X'0F'
LA R1,X'3D4'
SVC PORTOUT SET CURSOR LOW BYTE INDEX POINTER
LA R1,X'3D5'
SVC PORTIN READ LOW BYTE
SLL R3,8
OR R0,R3
CVD R0,PWORK
ED DCUR,PWORK+5
LA R2,DCURMSG
SVC WTO
L R15,=V(PET)
BALR R14,R15
LA R2,=C'TESTSVC ENDED$'
SVC WTO
SVC EXIT
LOADERR EQU *
LA R2,=C' LOAD ERROR ON Z86SUB.EXE$'
SVC WTO
SVC TRACE
DC C'BUG'
SVC EXIT
GMAINERR EQU *
LR R3,R0
LA R2,=C'GMAIN ERROR$'
SVC WTO
SVC TRACE
DC C'BUG'
SVC EXIT
FMAINERR EQU *
LR R3,R0
LA R2,=C'FMAIN ERROR$'
SVC WTO
SVC TRACE
DC C'BUG'
SVC EXIT
USERSPI1 EQU * 0C1 ON X'123'
LR R3,R0
LR R4,R1
LR R5,R2
USING IHAPIE,R5
LA R2,=C'USER SPIE EXIT 1 TAKEN$'
SVC WTO
CL R3,=AL2(4,1) R0 = INS LNG + INT. CODE
BNE SPIERR
CL R4,=A(INVOP1) R1 = INSTR. ADDR
BNE SPIERR
CLC PIEPSW+4(4),=A(INVOP1)
BNE SPIERR
LA R6,32(R5) R4 = PIE (SET R6 TO PICA)
CL R6,PIEPICA
BNE SPIERR
CLC PICEXT,=A(USERSPI1)
BNE SPIERR
CLC PIEGR14,=A(14)
BNE SPIERR
CLC PIEGR15,=A(15)
BNE SPIERR
CLC PIEGR0,=A(0)
BNE SPIERR
CLC PIEGR1,=A(1)
BNE SPIERR
CLC PIEGR2,=A(2)
BNE SPIERR
B 2(R4)
USERSPI2 EQU * 0C7 ON CP =P'1',=X'00'
LR R3,R0
LR R4,R1
LR R5,R2
LA R2,=C'USER SPIE EXIT 2 TAKEN$'
SVC WTO
CL R3,=AL2(6,7) R0 = INS LNG + INT. CODE
BNE SPIERR
CL R4,=A(INVOP2+6) R1 = INSTR. ADDR
BNE SPIERR
LA R6,32(R5) R4 = PIE (SET R6 TO PICA)
CL R6,0(R5) VERIFY PIE POINTS TO PICA
BNE SPIERR
CLC 12(20,R5),=A(14,15,0,1,2)
BNE SPIERR
B 0(R4)
USERSPI3 EQU * 0C5 ON EX 0,INVOPEX = MVCL 0,14
LR R3,R0
LR R4,R1
LR R5,R2
LA R2,=C'USER SPIE EXIT 3 TAKEN$'
SVC WTO
CL R3,=AL2(4,5) R0 = INS LNG + INT. CODE
BNE SPIERR
CL R4,=A(INVOP3+4) R1 = INSTR. ADDR
BNE SPIERR
LA R6,32(R5) R4 = PIE (SET R6 TO PICA)
CL R6,0(R5) VERIFY PIE POINTS TO PICA
BNE SPIERR
CLC 12(20,R5),=A(X'14ABCDEF',15,X'00ABCDEF',1,2)
BNE SPIERR
B 0(R4)
SPIERR EQU *
LA R2,=C'SPIE PSW / ADDR BAD$'
SVC WTO
SVC TRACE
DC C'BUG'
SVC EXIT
INVOPEX MVCL 0,14 FORCE 0C4 VIA EX
DC C'*** SAVE PSW ***'
SAVEPSW DC D'0'
COPY CPY/EQUREGS.CPY
COPY CPY/EQUSVCS.CPY
WRITECON EQU 202
READCON EQU 208
PORTIN EQU INBYTE
PORTOUT EQU OUTBYTE
CALLZ86 EQU USERSVC
LOADSVC EQU LOAD86
LOADADDR DC A(0) VIRTUAL LOAD ADDRESS SET BY SVC NOW
CR EQU X'0D'
PWORK DC D'0'
DMEMMSG DC C'FREE MEMORY ='
DMEM DC X'40206B2020206B202020',C'$'
DSMASK DC X'4020',C',',X'202020',C',',X'202020'
DSMMSG DC C' SECONDARY MEMORY START ='
DSMEMS DC CL10' Z,ZZZ,ZZZ',C' LENGTH ='
DSMEML DC CL10' Z,ZZZ,ZZZ',C'$'
DCURMSG DC C' CURSOR ADDRESS ='
DCUR DC X'402020202020',C'$'
LTORG
USER370A CSECT
DROP
USING *,R15
LA R2,MSGA1
SVC WTO
USER370B CSECT
DROP
USING *,R15
LA R2,MSGB1
SVC WTO
USER370A CSECT
DROP
USING USER370A,R15
LA R2,=C'USER 370 A MSG 2$'
SVC WTO
BR R14
MSGA1 DC C'USER 370 A MSG 1$'
LTORG
USER370B CSECT
DROP
USING USER370B,R15
LA R2,=C'USER 370 B MSG 2$'
SVC WTO
BR R14
MSGB1 DC C'USER 370 B MSG 1$'
LTORG
COPY CPY/IHAPIE.CPY
END DEMOSVC